/*—————————————————————————————————————————————————————————— 公共方法文件 ——————————————————————————————————————————————————————————*/

/**
 * 公共内容引入区
 */
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
import { useRoutes, RouteObject, useLocation } from 'react-router-dom'
import LimitRouter from '@/router' // 路由构造函数引入

// redux全类型hooks引入
// --------------------------------------------------------------------------------------------------------
import { useAppSelector } from '@/utils/hooks'

// 样式+适配文件引入区
// ---------------------------------------------------------------------------------------------
import './App.scss' // app样式
import LayoutBox from './components/layout/layout'
import ConfigProviderApp from '@/components/configProvider/configProvider'
import { useLayoutEffect } from 'react'

// app总览
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
function App() {
  // redux中hooks使用区域
  const publicStore = useAppSelector((state) => state.publicStore) // 获取公共模块数据

  // 获取当前路由信息
  const location = useLocation()

  // 在dom挂载前进行执行
  useLayoutEffect(() => {
    // 只有当不是login页面时，才能进行执行 动态信息查询接口
    location.pathname != '/login' 
  }, [])

  // AppDom组合
  return (
    <ConfigProviderApp>
      <LayoutBox>{useRoutes(LimitRouter(publicStore.Router ) as unknown as RouteObject[])}</LayoutBox>
    </ConfigProviderApp>
  )
}

export default App
